﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using DAL;
using System.Xml.Linq;

public partial class admin_ConfigProduct_DetailBrand : System.Web.UI.Page
{

  BrandBLL brandData = new BrandBLL();
  protected void Page_Load(object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
      Session["url_back_admin"] = Request.RawUrl;

      LoadTitle();
      LoadCategory();
      LoadBrandCate();
      if (Request.QueryString["Id"] != null)
        Filldata();
    }
  }
  private void Filldata()
  {
    int id = Convert.ToInt32(Request.QueryString["Id"]);
    Brand brand = brandData.GetById(id);
    //txtName.Text = brand.Name;
    dropMode.SelectedValue = brand.Mode.ToString();
    dropBrandCate.SelectedValue = brand.CateId.ToString();
  }

  BrandCateBLL dataCateBrand = new BrandCateBLL();
  ProdCateBLL categoryData = new ProdCateBLL();
  private void LoadCategory()
  {
      dropMode.Items.Clear();
      ShowChild(0, " - - ");
  }

  private void ShowChild(int parentId, string space)
  {
      List<ProdCate> listDataSource = categoryData.GetByParent(parentId);

      foreach (ProdCate item in listDataSource)
      {
          ListItem obj = new ListItem(space + item.Name, item.Id.ToString());
          dropMode.Items.Add(obj);

          ShowChild(item.Id, space + "- - - ");
      }
  }
  //private void LoadMode()
  //{
  //  dropMode.Items.Clear();
  //  XElement xElement = XElement.Load(MyConfig.serverPath + "XML/Config.xml");
  //  var xPosition = xElement.Descendants("ProductMode").Descendants("Mode");
  //  foreach (XElement item in xPosition)
  //  {
  //    dropMode.Items.Add(new ListItem("----- " + item.Element("Name").Value, item.Attribute("Id").Value));
  //  }
  //  dropMode.Items.Insert(0, new ListItem("- Chọn nhóm sản phẩm -", "-1"));
  //}
  private void LoadBrandCate()
  {
      dropBrandCate.Items.Clear();
      var ListCateBrand = dataCateBrand.GetAll();
      foreach (var item in ListCateBrand)
      {
          dropBrandCate.Items.Add(new ListItem("----- " + item.BrandCateName.ToString(), item.Id.ToString()));
      }
      dropBrandCate.Items.Insert(0, new ListItem("- Chọn nhóm thương hiệu -", "-1"));
  }
  private void LoadTitle()
  {
    if (Request.QueryString["Id"] != null)
    {
      h3Title.InnerText = "Chỉnh sửa thương hiệu sản phẩm";
    }
  }
  private bool isValidate()
  {
    if (dropMode.SelectedIndex <= 0)
    {
      Myfunction.ThongBao(lbThongBao, "Chọn nhóm sản phẩm");
      return false;
    }

    if (dropBrandCate.SelectedIndex <= 0)
    {
        Myfunction.ThongBao(lbThongBao, "Chọn nhóm thương hiệu");
        return false;
    }
    return true;
  }
  private void ResetForm()
  {
    //txtName.Text = "";
  }
  private void Add()
  {
    Brand brand = new Brand();

    brand.Name = dropBrandCate.SelectedItem.ToString().Replace("----- ","");
    brand.CateId = int.Parse(dropBrandCate.SelectedValue);
    brand.Mode = Convert.ToInt32(dropMode.SelectedValue);
    brand.Sort = brandData.GetMaxSort(brand.Mode);

    brandData.Add(brand);
    Myfunction.ThongBao(lbThongBao, "Thương hiệu đã được cập nhật");
  }
  private void Update()
  {
    int id = Convert.ToInt32(Request.QueryString["Id"]);
    Brand brand = brandData.GetById(id);
    brand.Name = dropBrandCate.Text;
    brand.CateId = int.Parse(dropBrandCate.SelectedValue);
    if (brand.Mode.ToString() != dropMode.SelectedValue)
      brand.Sort = brandData.GetMaxSort(brand.Mode);

    brand.Mode = Convert.ToInt32(dropMode.SelectedValue);
    brandData.Update(brand);

    Myfunction.ThongBao(lbThongBao, "Size đã được cập nhật");
  }
  protected void btnOk_Click(object sender, EventArgs e)
  {
    if ((int)Session["Role"] != 1)
    {
      Myfunction.ThongBao(lbThongBao, "Bạn không có quyền thực hiện thao tác này ! ");
      return;
    }
    try
    {
      lbThongBao.Text = "";
      if (isValidate())
      {
        if (Request.QueryString["Id"] == null)
        {
          Add();
          ResetForm();
        }
        else
          Update();
      }
    }
    catch (Exception ex)
    {
      Myfunction.ThongBao(lbThongBao, ex.Message);
    }
  }
}